import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.time.Duration;

/**
 * 使用Redis连接池
 * 配置代码应该放入工具类中只完成一次
 */
public class JedisPoolTest {
    public static void main(String[] args) {
        var config = new JedisPoolConfig();
        //最大连接数
        config.setMaxTotal(50);
        //最大空闲数
        config.setMaxIdle(30);
        //最大等待时间
        config.setMaxWait(Duration.ofSeconds(20));

        //使用配置创建连接池
        var pool = new JedisPool(config, "redis://192.168.254.168:6379");
        //从连接池中获取连接
        var jedis = pool.getResource();
        int i = 0;
        try{
            var begin = System.currentTimeMillis();
            while(true){
                var end = System.currentTimeMillis();
                if(end - begin >= 1000)
                    break;
                jedis.set("avatar:test:" + i, "value_" + i);
                i++;
            }
        } finally {
            //关闭连接
            //释放连接(归还连接给连接池)
            jedis.close();
        }
    }
}
